自由研究 2020-2021
概要
C#のTask、JSのPromise、AndroidJavaのThread投入パターン(正式名称わかんない上に俺の知識は古い)、KotlinのCoroutine、Swiftの来世くらいでのアットasyncHandler、goの goキーワード、Pythonの、、
みたいな、いろんな言語の非同期やら分散処理やらを自由研究する予定。
これは最終的には、Unity C#上でネイティブレイヤを使ってStartCoroutineのスレッド版みたいなものを実装する時に、どんな理想があるのか、どんな理想を見ることができるのか、知識として使いたい。
理想
なるべくC#という言語との接点を最小限にしたいという思いがある。これはなんていうか、C#のasync構文やIAwaitableまわりに利点よりも損点を多く感じているため。(ネイティブでやった方がryすぎる
わりかし簡単にいうと、「言語基礎ではなくマルチスレッドをスレッドプールという形で扱っている」あたりがコアな気はしていて、GCDみたいな逃げ場や簡便性を失いすぎている。
あとデカい。
そのへんを明確に言語化するためにも、勉強しような~っていう感じ。
StartCoroutineは結構理想的で、メインスレッドで動作するという特性を保ったまま、
IEnumerator<T>っていう、いわゆるジェネレータを使ってコードブロックを分離できる「だけ」なので、
あのくらいの言語機能の利用度が理想な気はしている。